1. Field of the Invention
The present invention relates to methods and apparatus for managing computers, data, information and peripheral resources particularly in a computer network. More specifically, the invention relates to improved methods and apparatus for computer network management. The improved methods and apparatus of the present invention are highly flexible and easily extensible and optimize the network""s resources.
2. Prior Art Background
A computer network as used herein is used in its broadest sense i.e. as any configuration of data processing devices and software connected for information exchange. Generally, a network serves to connect together a plurality of devices; e.g., user interfaces, data devices, processors, memory, and may also include terminals, computers, etc. Networks typically comprise a plurality of CPU""s some of which function as servers to provide services to the other computers connected to the network.
There are many types of computer networks in existence. They are known by various names including Local Area Network (LAN), Wide Area Network (WAN), Internet and the like and may be implemented in accordance with a variety of known architectures.
The functions performed by a server in a network vary depending on the network and the server""s place within the particular network. For example, at least one server typically functions as a xe2x80x9cfile serverxe2x80x9d for the network. (See, generally, Rinzler and Gancher, The Computer/and Guide To 25 Local Area Networks Computerland Books, Pleasanton, Calif. pp. 4-34). A computer functioning as a file server will usually have significantly more data storage capacity than the other computers connected to the network. The networked computers utilize this data storage capacity to store data or information usually in the form of files. Software executed by the file server controls access to this data or information.
In addition to a fileserver, a network can include servers such as a print server, a database server, or facsimile server. A print server typically provides access to a centralized printer shared by the network. A network user is able to send a print request to the print server where the request and data to be printed are stored, prioritized with respect to other print requests, and placed on a print queue until the printer is ready to print the job. A database server provides for the centralized storage of a database accessible to the network users. A facsimile server provides users connected to the network access to a facsimile capability located in a centralized facsimile server FIG. 1 (prior art) illustrates an example of a computer network architecture commonly known as a client-server architecture. In the client-server network of FIG. 1, there are a plurality of servers 10 coupled to a network bus 12. A server 10 is typically implemented by a computer or a workstation that is special purposed e.g., large disk space, high speed CPU, multiple LAN connections, etc., while network bus 12 may be implemented by any of the known network routing media such as coaxial cables, multi-strand cables, fiber optic cables, or even a wireless medium such as for example infrared beams. A plurality of client terminals 14, representing known computers or computing terminals, are coupled to the same network bus 12, each of which is capable of communicating with any one of servers 10 or other terminals 14 using one of the known network protocols such as Apple Talk (trademark), TCP/IP and the like.
On servers 10, there are installed instantiations of network service applications, which are typically software implemented, for performing programmed tasks. Examples of such network service applications include print service, e-mail service, file service, and the like. A print service application manages the printer or print queue associated with a server, thereby enabling client terminals 14 to utilize that printer for their printing needs. An e-mail service application performs e-mail management and routing tasks, permitting client terminals 14 to communicate among one another.
A server 10 may be coupled to one of the network""s central file storage facilities, e.g., one of the known persistent memory devices (omitted in FIG. 1 for clarity) such as a hard disk, a RAID (redundant arrays of independent drives) system, an optical storage device, and the like. A file service instantiation installed on that server 10 performs tasks related to file management for the benefit of users on client terminals 14. Such file service tasks include access privilege management, storage space management, and the like. The number and types of network services available to a network are practically limitless.
As mentioned earlier, instantiations of these network services are installed on the network servers. A network service application, e.g., one of the aforementioned print service, file service, or e-mail service applications, may have many instantiations, either on the same server or on different servers. For example, most or all servers 10 in FIG. 1 may each have a print service instantiations installed to manage a network printer. Further, a given service instantiation on a server may service multiple client terminals simultaneously. Likewise, a client terminal may establish a logical session with multiple services simultaneously, either a single server or on multiple servers.

In a client server environment the client terminals frequently have fewer resources, such as RAM or CPU etc., available at the terminal and rely, in many applications, on the server for all or part of these resources. As a result, the server services multiple transactions from the various clients. In most applications, each client has dedicated resources on the server, even when the client terminal is not being employed. In the present invention, resources are implemented dynamically i.e., occurring at the time it is needed as opposed to occurring at a predetermined or fixed time. For example, when a process is performed on the network of the present invention, the valuable system resources are not dedicated for the entire session. As a result, when a user issues a transaction, the present invention dedicates a process to that transaction. When that transaction is complete, the process becomes available for other transaction processing. Thus, a process is not dedicated to a user but to a transaction. For example, if two users issue a transaction at the same time, a new process is created for the second transaction. Either process will be terminated if the process is not used for a predetermined period of time and processes currently not in use will not consume system resources. The present invention thus results in more efficient use of system resources. Thus, the server or servers in the present invention are used more efficiently, and a pool of 50 users may use only 10 processes. This efficiency of use may also permit the network to require fewer user licenses from software owners since the present invention will regulate the use of a software programs so that there is only a predetermined number of processes using the software program at any given point in time.
The dynamic process behavior of the present invention is provided by a pool master which is the main interface to the client terminals and monitors. The pool master dispatches requests, a pool agent or transaction processor services all transactions and a pool application manager provides dynamic modification of the process pool and monitors the behavior of the pool. The number of pool agents can increase or decrease depending on the flow of requests from the client terminals.